package com.example.administrator.mynote;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.nfc.tech.NfcB;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

/**
 * 数据库操作类:重写的三个方法（构造方法、创建、版本升级）
 * 自定义5个方法：获取系统当前时间、增删改查
 */

public class NoteSQLiteOpenHelper extends SQLiteOpenHelper {
    SQLiteDatabase db;

    /*构造方法 建库（文件）
    * 数据库文件：note.db
    * 版本号：1*/
    public NoteSQLiteOpenHelper(Context context) {
        super(context,"note.db", null, 1);
        db=getWritableDatabase();
    }
    /*建表，只执行一次*/
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql="create table note(id integer primary key autoincrement,content text,time text)";
        db.execSQL(sql);

    }
    /*数据库版本更新的时候执行
    * 一般表结构的修改语句*/
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

    public String getTime(){
        /*获取系统当前时间*/
        Date date=new Date(System.currentTimeMillis());
        /*格式化*/
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年mm月dd日 hh:mm:ss");
        return simpleDateFormat.format(date);
    }
    /*增加，保存*/
    public boolean insert(String content,String time){
        ContentValues cv=new ContentValues();
        /*参数1：表中的字段 参数2：数据*/

        cv.put("content",content);
        cv.put("time",time);
        /*参数一：表名 参数三：把什么数据添加到什么字段*/
        /*大于0表示插入成功*/

        return db.insert("note",null,cv)>0;
    }


    public boolean update(int id,String content,String time){
        ContentValues cv=new ContentValues();
        cv.put("content",content);
        cv.put("time",time);
        /*参数一：表名
          参数二： ContentValues(要修改的内容，类似于update语句中的set部分)
          参数三： String类型 where条件
          参数四 ：String[]类型 where中的参数的值*/
        return db.update("note",cv,"id=?",new String[]{id+""})>0;
    }
    /*删除*/
    public boolean delete(int id){
        return db.delete("note","id=?",new String[]{id+""})>0;
    }

    public ArrayList<NoteBean> select(){
        ArrayList<NoteBean> arrayList=new ArrayList<NoteBean>();
        String sql="select * from note order by time desc";
        /*参数1 SQL语句 参数2 where条件参数中问号*/
        Cursor cursor =db.rawQuery(sql,null);
        while (cursor.moveToNext()){
            /*每一条记录（若干字段）取出，保存在集合List*/
            /*id:表中的字段名*/
            int id=cursor.getInt(cursor.getColumnIndex("id"));
            String content =cursor.getString(cursor.getColumnIndex("content"));
            String time=cursor.getString(cursor.getColumnIndex("time"));
            NoteBean noteBean=new NoteBean(id,content,time);
            arrayList.add(noteBean);
        }
        return arrayList;
    }



}
